
package com.java.db.actions;

import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.swt.SWT;
import org.eclipse.ui.IObjectActionDelegate;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
import org.eclipse.ui.PlatformUI;

import com.java.db.views.ConnectManagerView;
import com.java.db.views.NewConnectDialog;

/**
 * Our sample action implements workbench action delegate. The action proxy will
 * be created by the workbench and shown in the UI. When the user tries to use
 * the action, this delegate will be created and execution will be delegated to
 * it.
 * @see IWorkbenchWindowActionDelegate
 */
public class NewConnectAction implements IWorkbenchWindowActionDelegate,IObjectActionDelegate
{
	/**
	 * The constructor.
	 */
	public NewConnectAction()
	{
	}

	/**
	 * The action has been activated. The argument of the method represents the
	 * 'real' action sitting in the workbench UI.
	 * @see IWorkbenchWindowActionDelegate#run
	 */
	public void run(IAction action)
	{
		PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().getDisplay().asyncExec(new Runnable()
		{
			@Override
			public void run()
			{
				NewConnectDialog connectDialog = new NewConnectDialog(
						PlatformUI.getWorkbench().getDisplay().getActiveShell(),
						SWT.CLOSE,ConnectManagerView.TreeViewer);
				connectDialog.open();
			}
		});
	}

	/**
	 * Selection in the workbench has been changed. We can change the state of
	 * the 'real' action here if we want, but this can only happen after the
	 * delegate has been created.
	 * @see IWorkbenchWindowActionDelegate#selectionChanged
	 */
	public void selectionChanged(IAction action, ISelection selection)
	{
	}

	/**
	 * We can use this method to dispose of any system resources we previously
	 * allocated.
	 * @see IWorkbenchWindowActionDelegate#dispose
	 */
	public void dispose()
	{
	}

	/**
	 * We will cache window object in order to be able to provide parent shell
	 * for the message dialog.
	 * @see IWorkbenchWindowActionDelegate#init
	 */
	public void init(IWorkbenchWindow window)
	{
	}

	@Override
	public void setActivePart(IAction arg0, IWorkbenchPart arg1)
	{
		// TODO Auto-generated method stub
		
	}
}